package session;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //body中：username=xxx&password=xxx
        //登录成功：跳转到hello.html，允许访问敏感资源（/sensitive）
        //登录失败：返回错误信息
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        //模拟在数据库效验账号密码
        if("abc".equals(username) && "123".equals(password)){
            //为登录成功的用户，创建一个session

            //tomcat启动时维护了一个数据结构Map<String,Session>
            //用来保存多个多户的会话信息，键为sessionId的值（随机字符串）
            //获取当前请求的session，如果没有获取到就会创建一个，并存放在Map结构中
            HttpSession session = req.getSession(true);
            //session对象本身也是一个Map结构，可以保存多组键值对的数据
            session.setAttribute("","");
            //以上session代码会设置一个Set-cookie:jsessionid=随机字符串
            //跳转到登录后的页面
            resp.sendRedirect("hello.html");
        }else{
            resp.setContentType("text/html;charset=utf-8");
            resp.getWriter().println("登陆失败");
        }
    }
}
